1. Field of Invention
This invention relates generally to computer devices, their operating systems, and their secondary storage structures. Specifically, this invention relates to the dynamic manipulation and partitioning of the secondary storage of a computer device.
2. Related Art
Prior art secondary storage devices, that are bootable including hard disks and solid-state disks, include a Master Boot Record (MBR) stored on the first sector of the device. The prior art MBR includes simple executable code and data file in a standard format.
Some secondary storage devices have a single file system that occupies the entire device. Illustrative of such systems are FAT-12 on floppy disks and FAT-16 on Zip(trademark) drives. Other secondary storage devices can be divided into one or more partitions, with each partition having an independent file system organization. Generically, a partition can be defined as a continuous segment of storage. A partition is identified by such information as starting location, size, type, and active flag. Partitions are the basic storage units formatted by operating systems to meet the specific operating system storage allocation and retrieval services needs.
Secondary storage devices for IBM PC and compatible systems as originally designed for DOS contain a structure that can consist of up to four partitions. This four-partition structure was subsequently enhanced so that the last partition can contain more than one logical volume. This enhanced last partition is called an extended partition.
The prior art MBR includes an Initial Program Loader (IPL), a partition table identifying up to four partitions, and a MBR Signature Field. By way of the partitions table, all secondary storage devices can be partitioned into primary partitions, hidden partitions, and extended partitions with multiple logical volumes. As previously disclosed, a prior art secondary storage device MBR can have up to four primary partitions listed in the partition table, each of which may have an independent file system and operating system. Due to standard design limitations of prior art computers, the booting sequence of prior art systems is limited to booting only one of the partitions identified in the partition table. It would thus be beneficial to provide a means by which partitions in; addition to those partitions identified in the partition table can be made bootable for a secondary storage device.
Enabling a greater number of partitions to be bootable for a secondary storage device, in turn, would provide many benefits over the prior art, including:
[1] computer users would have the ability to create a greater number and variety of file systems; and
[2] computer users would have the ability to load a greater number and variety of operating systems.
Providing a greater number and variety of file systems and operating systems in one computer system would also allow computer users to:
[1] take advantage of the specific values and strengths of the different operating systems currently available, in a single personal computer system;
[2] run all application programs on one computer system, regardless of the operating system for which the application program was written;
[3] designate certain partitions, application programs, and/or operating systems for particular users only (i.e., parents versus children, teachers versus students); and
[4] given the proper software protocols, password protect those designated partitions, application programs, and/or operating systems from unauthorized access.
It would also be a benefit over the prior art to provide a means to dynamically modify the bootable partitions of a secondary storage device.
In order to benefit from multiple bootable operating systems, it would be desirable for the mechanism by which such partitions and operating systems are managed and manipulated to be operating system independent and at a hierarchy level above the run-time operating system. Such a mechanism would be able to function with any operating system without having to be modified. The prior art would therefore be enhanced by a mechanism that manages partitions and operating systems, is operating system-independent, and is located at a hierarchy level higher than the run time operating system.
It would also be beneficial for multiple operating systems to be able to share specific partitions.
It would likewise be desirable and beneficial for such means and mechanisms to be user-friendly.
Accordingly, the objectives of this invention are to provide, inter alia, a mechanism and means by which to:
boot a greater number of partitions for a secondary storage device and provide standard API to access them;
create a greater number and variety of file systems;
load a greater number and variety of operating systems;
take advantage of the specific values and strengths of the different operating systems currently available;
run all application programs on one computer system, regardless of the operating system for which the application program is written;
designate certain partitions, application programs, and/or operating systems for particular users only (i.e., parents versus children, teachers versus students);
password protect those designated partitions, application programs, and/or operating systems from unauthorized access, given the proper software protocols;
dynamically modify the bootable partitions of a secondary storage device;
manage and manipulate operating systems in a way that is operating system-independent, at a hierarchy level higher than the run time operating system, and in a user friendly manner; and
allow multiple operating systems to share partitions.
Other objectives of the invention will become apparent from time to time throughout the specification and claims of this application.
To achieve such improvements, the invention comprises a Storage Manager that dynamically manipulates and partitions the secondary storage of a computer device without re-writing or revising the secondary storage after each manipulation. The Storage Manager is implemented by executable code between the firmware level and the run-time operating system level of a computer device. Means are described to transfer control of the computer device to the Storage Manager prior to the run-time operating system or any application programs gaining control of the computer device. The Storage Manager includes a Virtual Table of Contents (VTOC), in which relevant identifying information is contained for each partition of the secondary storage. At least one Cabinet is created, containing a list of partitions. Each Cabinet may have a separate list of partitions, and each partition may be included in more than one Cabinet. One of the Cabinets is designated as the Active Cabinet. Prior to continuation of the run-time operating system boot sequence, the contents (i.e., the list of partitions within that Cabinet) replace the partition list of the secondary storage device. If the secondary storage device is bootable, then the partition within that Cabinet marked as bootable is bootstrapped and loaded into main memory. The contents of the partitions and Cabinets may be modified by a user through a graphical user interface.